This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
In the field of computer systems, it may be desirable for information to be transferred from a system memory associated with one computer system to a system memory associated with another computer system. Queue pairs (“QPs”) may be used to facilitate such a transfer of data. Each QP may include a send queue (“SQ”) and a receive queue (“RQ”) that may be utilized in transferring data from the memory of one device to the memory of another device. Work requests may be issued from an upper layer protocol or a consumer to a QP to define the segment of the local memory to be exposed to a remote system. The work queue, which may be represented by a work queue element, may be enqueued into the send or receive queue, when the work request is received from the upper layer protocol or consumer of the QP. Once the work request is received, the hardware is notified for each individual work request. Upon completion of the work request, the work queue element that represents the work request may be dequeued and another work queue element may be processed
However, in communicating the work request to the QP, an Input/Output (I/O) bus may be utilized to retrieve the work queue elements in a singular fashion. The queuing and notification process may result in inefficient utilization of the I/O bus because the QP may retrieve the work queue elements multiple times. As such, queuing and notification process may be time consuming and expensive in terms of computing resources.